#if !defined(__APP_DEVICE_H)
#define __APP_DEVICE_H

#include "app_buffer.h"
#include <pthread.h>

// 设备的结构体
typedef struct {
    char *filename; // 设备文件
    int fd; // 文件描述符  
    Buffer *up_buffer; // 上行缓冲区
    Buffer *down_buffer; // 下行缓冲区
    pthread_t read_thread; // 读线程的标识
    int is_running; // 线程是否正在运行
    long last_write_time; 
    //读后
    int (*post_read)(char *data, int len);
    //写前
    int (*pre_write)(char *data, int len);
} Device;

// 初始化模块
Device *app_device_init(char *filename);

// 启动设备
int app_device_start(void);

// 销毁设备
void app_device_destroy(void);

#endif 
